Repository navigation
Consolidate versioning approach for the tracer - #9521
Conversation
1444c00 to
437fefe
Compare
BenchmarksBenchmark execution time: 2026-10-29 14:45:01 Comparing candidate commit 6268b61 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 72 metrics, 0 unstable metrics, 6 known flaky benchmarks, 119 flaky benchmarks without significant changes.
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (9521) and master. ✅ No regressions detected |
2e1b6ba to
040cd7d
Compare
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
040cd7d to
cc28827
Compare
There was a problem hiding this comment.
More details
MSBuild property evaluation and native macro expansion produced the expected version values, with no reportable defects identified. Full managed compilation remains unverified because the checkout requires .NET 11 and only .NET 8 is available.
🤖 Bits Code Review · Commit cc28827
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cc288279c7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
ToolVersion existed only so one smoke test could install the dd-trace tool by exact version, which made the pipeline YAML an output of the version-bump tooling. The step now derives it from the nupkg the build produced, so the version does not have to be kept in step by hand.
The SDK version was previously written into 19 source files, kept in step by a regex rewriter. This consolidates the version into just 2 files - dd_version.h and version.props - and derives all the values from it. - We use a source generator to make the version available to managed code. - CMake projects import via build/cmake/DdVersion.cmake The one remaining usage of a hard-coded version is in dd-dotnet.sh, fixed in the next commit. The generated output of the source generator is gitignored rather than committed, unlike our other generators. This isn't strictly necessary today, but it opens the way for having dynamic "dev" builds.
dd-dotnet.sh ships inside the tracer home and so cannot read the version from anywhere else, but it only needs it to name the package the user should have downloaded, in an error message. It now carries a placeholder filled in at the two points where the script is copied into a tracer home, rather than being rewritten in place by the version-bump tooling.
cc28827 to
03b200d
Compare
03b200d to
6bc8fd1
Compare
cecile75
left a comment
There was a problem hiding this comment.
Approved for the apm-sdk-capabilities files
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lucaspimentel
left a comment
There was a problem hiding this comment.
Approving for apm-serverless. The only file we own is Build-AzureFunctionsNuget.ps1 and those changes LGTM.
Summary of changes
Update versioning to only write the version in a single location
Reason for change
Today, we automatically bump the version of the tracer after a release, using a Nuke job. This was always a little bit hacky because we currently change the hardcoded version in ~20 different places. As part of an effort to make "dev" releases easier, this PR consolidates as much of that as possible, so that now the version used by the whole build comes from a single file.
Implementation details
version.propsfile at the repository rootversion.propsas constantsProjectInfo-prereleasesuffix for some branches.version.propsXML file to get the version numbers it needs for embedding in the assemblies on linux inDdVersion.cmakeDdVersion.propsdd_version.his used to flow the native version numbers coming from cmake and DdVersion respectively throughout the native build as required.UpdateVersiontaskThere are a number of smaller changes that fall out of this
tools/*.ps1have been broken for months - this just tweaks them without seeking to resolve that (will handle in a follow up, but low priority as clearly noone uses them)Datadog.APM.Native=2.18.0for years 😅IsPreReleaseflag.-prereleasesuffix in most comparisons, so we couldn't differentiate between two buildsTest coverage
UpdateVersionruns correctly locallyOther details
Things that LLM review flagged, that I actively contradicted:
UpdateVersionsfailures. If something fails, expectation is you clear work tree, fix, and try againCloseMilestonenow runs before we create the version bump PR - that's fine@DD_VERSION@placeholder. MAin way to fix it would be to make these download the linux-tracer home, but right now these are very fast non-critical jobs, so I don't think it's worth it.https://datadoghq.atlassian.net/browse/APMLP-2011